<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>指针思想</title>
</head>
<body>
	<script type="text/javascript">
		document.write('算法储备之指针思想')


		//1.题目：请寻找出下面字符串中连续出现次数最多的字符串，他连续出现了几次？
		// var str=‘aaaabbbbbccccccccdddddeeeeeeeeeeeeeeeee’;

		// 指针思想说明和逻辑分析：
		// 说明：在js中的指针就是下标，不是c语言中的指针，c语言中的指针可以操作内存，js中的指针就是一个下标位置
		// 逻辑：1.如果指针i和j指向的字符一样时，那么i不动，j向后移动
		        // 2.如果指针i和j指向的字符不一样时，那么i和j之间的就是连续相同的（包括i不包括j），先让i追上j，j后移
		        // 3.当i>str.length时就结束操作



		    function getNum(){
			   //指针
			   let i=0;
			   let j=0;
			   //重复最多的字符和连续重复的次数
			   let maxRepeatCount=0;
			   let maxRepeatChar='';
			   var str='aaaabbbbbccccccccdddddeeeeeeeeeeeeeeeee';
			   while(i<=str.length-1){
			   	if(str.charAt(i)!=str.charAt(j)){
			   		//统计重复的字符和连续重复的次数
			   		if(j-i>maxRepeatCount){
			   			maxRepeatCount =j-i;
			   			maxRepeatChar = str.charAt(i);
			   		};
			   		//让i追上j
			   		i=j;
			   		//j后移
			   		j++
			   	}
			   	j++;
			   }
			   //循环结束，输出结果
			   console.log('连续最多次字符是：'+maxRepeatChar+'连续出现了'+maxRepeatCount+'次');	    	
		    }



		    getNum()


	</script>
	
</body>
</html>